package com.atguigu.tingshu.album.listener;

import com.alibaba.fastjson.JSON;
import com.atguigu.tingshu.album.domain.MxwObject;
import com.rabbitmq.client.Channel;
import io.micrometer.common.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class MxwListener {

    @RabbitListener(queues = {"mxw.test.queue"})
    public void mxwListen(String json, Channel channel, Message message) {
        if (StringUtils.isBlank(json)) return;
        MxwObject mxwObject = JSON.parseObject(json, MxwObject.class);
        log.info(mxwObject.toString());
        // todo:需要大量的判断
        // 1.根据库名和表名确定实体类类型，对data进行反序列化
        // 2.判断操作类型：insert/update 使用set指令进行数据的新增或者更新的同步
        // delete-使用del指令删除对应的缓存数据
    }
}
